Extending Alloy with Partial Instances
نویسندگان
چکیده
Kodkod, the backend of Alloy4, incorporates new features for solving models where part of the solution, that is, a partial instance, is already known. Although Kodkod has had this functionality for some time, it is not explicitly available to the modeller through the Alloy language syntax. We propose an extension to the Alloy language to make partial instances explicitly available to the Alloy user. Explicit partial instances are helpful for the Alloy user in a number of capacities, including test-driven development, regression testing, modelling by example, and combined modelling and meta-modelling. The proposed syntax also gives the modeller explicit access to the performance benefits of Kodkod’s partial instance features.
منابع مشابه
Kodkod for Alloy Users
The generality of Alloy’s relational logic and the full automation of its analysis have prompted several attempts to use Alloy as a backend engine for other tools. However, these efforts have been hampered by the Alloy Analyzer’s lack of 1) a clean API, 2) support for partial instances, and 3) a mechanism for sharing subformulas and subexpressions. Designed expressly as a plugin component, the ...
متن کاملαRby - An Embedding of Alloy in Ruby
We present αRby—an embedding of the Alloy language in Ruby— and demonstrate the benefits of having a declarative modeling language (backed by an automated solver) embedded in a traditional object-oriented imperative programming language. This approach aims to bring these two distinct paradigms (imperative and declarative) together in a novel way. We argue that having the other paradigm availabl...
متن کاملPreventing Arithmetic Overflows in Alloy
In a bounded analysis, arithmetic operators become partial, and a different semantics becomes necessary. One approach, mimicking programming languages, is for overflow to result in wrap-around. Although easy to implement, wrap-around produces unexpected counterexamples that do not correspond to cases that would arise in the unbounded setting. This paper describes a new approach, implemented in ...
متن کاملDomain-Specific Visualization of Alloy Instances
Motivation Alloy is a modelling language based on first order logic and relational calculus combining the precision of formal specifications with powerful automatic analysis features [3]. The automatic analysis is done by the Alloy Analyzer, a tool capable of finding satisfiable instances for given Alloy models in a finite domain space using Sat-solving. The utility of this instance finding mec...
متن کاملIterative and Incremental Model Generation by Logic Solvers
The generation of sample instance models of Domain-Specific Language (DSL) specifications has become an active research line due to its increasing industrial relevance for engineering complex modeling tools by using large metamodels and complex well-formedness constraints. However, the synthesis of large, well-formed and realistic models is still a major challenge. In this paper, we propose an ...
متن کامل